# Title: Numero maximo de una lista						Filename: max.s
# Author: Chipres Castellanos Ana Maria					Date: 13 / Mar / 2017
# Description: Numero max
# Output: Maximo

@ r1 - utilizando para mantener la direccion de los elementos 
@ r0 - utilizando para los datos grandes 
@ r3 - utilizando para el numero actual 

######## CODE SEGMENT #############################################################
.section        .data

numbers:                        @LOS NUMEROS QUE SE EVALUARAN
.long  3,67,34,222,45,75,54,34,44,33,22,11,66,0
.global _start

_start:
ldr %r1, =numbers               @ COLOCA R1 PARA INICIAR LA DIRECCION DE  LOSNUM
ldr %r3 [%r1]                   @ CARGA r3 CON EL PRIMER NUMERO
mov %r0, %r3                    @ AL EMPEZAR LA COMCURRENCIA DEL NUMERO DEBERIA DE SER EL MAYOR

loop:
  cmp %r3, $0                   @ REVISA SI r3  ESPERA ZERO (FIN DE LA LISTA)
  beq exit                      @ SI NO , SALIDA
  ldr %r3, [%r1, #4]!           @ CARGA EL SIGUIENTE ELEMENTO EN r3
  cmp %r3, %r0                  @ COMPARA r0 Y r3
  ble bloop                     @ IR A START DE LOOP Y SI r3 <= r0
  mov %r0, %r3                  @ OTRO ELEMENTO SE PONE EN r3 into r0
  bal loop                      @ IR AL INICIO DE LOOP
  
  ####### DATA SEGMENT ###########################################################
  
  exit:                         @ EL VALOR MAS LARGO ESTA EN r0
  mov %r7, $1                   @ PREPARA LA SALIDA
  scv $0                        @ DESPIERTA EL KERNEL
  .end                          @ MARCA EL FINAL DEL CODIGO
